package com.hk.crm.web.listener;

import com.hk.crm.settings.domain.DicValue;
import com.hk.crm.settings.service.DicService;
import com.hk.crm.settings.service.impl.DicServiceImpl;
import com.hk.crm.utils.ServiceFactory;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class SysInitListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent event) {
        System.out.println("服务器缓存数据字典开始");
        ServletContext application=event.getServletContext();
//        取数据字典
        DicService ds= (DicService) ServiceFactory.getService(new DicServiceImpl());
//        应该管业务层要数据字典 7个list，可以打包成一个map
        /*
            业务层:
            map. put( "appellationList", dvList1);
            map. put("clueStateList", dvList2);
            map. put( "stageList", dvList3);
            * 。。。
            *
        * */
        Map<String, List<DicValue>> map=ds.getAll();
//        将Map拆解为上下文域对象中保存的键值对
        Set<String> set=map.keySet();
        for (String key:
             set) {
            //将数据字典添加到上下文域对象中,key为存入map的key，map.get(key)得到的是dvList1 2 3...
            application.setAttribute(key,map.get(key));
        }
        System.out.println("服务器缓存数据字典结束");

    }
}
